package com.work.yshop.mvp.contract;

import com.work.yshop.model.Order;

import java.util.List;

/**
 * 订单管理的MVP契约接口
 */
public interface OrderContract {

    /**
     * View接口，由Activity实现
     */
    interface View {
        /**
         * 显示加载中
         */
        void showLoading();

        /**
         * 隐藏加载中
         */
        void hideLoading();

        /**
         * 显示订单列表
         */
        void showOrders(List<Order> orders);

        /**
         * 显示空视图
         */
        void showEmptyView(int status);

        /**
         * 显示错误信息
         */
        void showError(String message);
        
        /**
         * 显示操作结果
         */
        void showOperationResult(boolean success, String message);
    }

    /**
     * Presenter接口，由Presenter实现
     */
    interface Presenter {
        /**
         * 绑定View
         */
        void attachView(View view);

        /**
         * 解绑View
         */
        void detachView();

        /**
         * 加载订单列表
         */
        void loadOrders(int status);

        /**
         * 添加新订单
         */
        void addOrder(String buyerName, double amount);

        /**
         * 接受订单
         */
        void acceptOrder(Order order);

        /**
         * 发货
         */
        void shipOrder(Order order);

        /**
         * 取消订单
         */
        void cancelOrder(Order order);
        
        /**
         * 删除订单
         */
        void deleteOrder(Order order);
    }

    /**
     * Model接口，由Model实现
     */
    interface Model {
        /**
         * 获取订单列表
         */
        List<Order> getOrderList(int status);

        /**
         * 添加订单
         */
        boolean addOrder(Order order);

        /**
         * 更新订单状态
         */
        boolean updateOrderStatus(Order order, int status);
        
        /**
         * 删除订单
         */
        boolean deleteOrder(Order order);
    }
} 